package chapter04;

public class Java15_Object_01 {
    public static void main(String[] args) {

        CCC c = new CCC();
        System.out.println(c.sum());

        System.out.println("--------");

        DDD d = new DDD();
        System.out.println(d.sum());

        System.out.println("--------");
        // 一个对象能使用什么方法，取决于引用变量的类型
        // 一个对象能使用什么属性，取决于引用变量的类型
        // 一个对象的方法具体的使用(直接/间接)需要看具体的对象
        // 一个对象的方法具体的使用不需要看具体的对象，属性在哪里声明在哪里使用
        CCC d1 = new DDD();
        System.out.println(d1.sum());
        System.out.println(d1.getI());

    }
}

class CCC {
    int i = 10;
    int sum() {
        return getI() + 10;
    }

    int getI() {
        return i;
    }
}

class DDD extends CCC {
    int i = 20;
//    int sum() {
//        return i + 20;
//    }

    int getI() {
        return i;
    }
}